Objekt viditelny v cele aplikaci

Otázka od: Ales Kerner

29. 10. 2002 9:41

Zdravim,

mam nasledujici problem, mam vytvoreny objekt TGlobal, odvozeny od TObject,
potrebuji aby byl videt v cele aplikaci a nebyl navazan na zadny formular,
jedine k cemu jsem dospel
je dopsat do DPR toto

  Application.CreateForm(TGlobal, Global);

Ale nezda se mi to CreateForm, kdyz to form neni.

Dik za radu

Ales



---
Odchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.406 / Virová báze: 229 - datum vydání: 21.10.2002

Odpovedá: Ondřej Kaláb

29. 10. 2002 9:55

Staci si tenot objekt dat do unity hlavniho formulare, na kterou si potom date
odkazy z kazde další unit.
Napr. Hlavni form je Form1, hlavni unit Unit1, zam si objekt vytvorite a pak si
v kazde další date uses unit1. No a je to...

-----Original Message-----
From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz] On Behalf
Of Ales Kerner
Sent: Tuesday, October 29, 2002 9:42 AM
To: delphi-l@clexpert.cz
Subject: Objekt viditelny v cele aplikaci


Zdravim,

mam nasledujici problem, mam vytvoreny objekt TGlobal, odvozeny od TObject,
potrebuji aby byl videt v cele aplikaci a nebyl navazan na zadny formular,
jedine k cemu jsem dospel je dopsat do DPR toto

  Application.CreateForm(TGlobal, Global);

Ale nezda se mi to CreateForm, kdyz to form neni.

Dik za radu

Ales



---
Odchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.406 / Virová báze: 229 - datum vydání: 21.10.2002

---
Poíchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.408 / Virová báze: 230 - datum vydání: 24.10.2002
 

---
Odchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.408 / Virová báze: 230 - datum vydání: 24.10.2002

Odpovedá: Petr Brant

29. 10. 2002 10:05

Pokud je odvozen od TObject, tak staci zavolat zdedeny konstruktor resp.
napsat vlastni a v jeho ramci zavolat ten zdedeny, napriklad

constructor TGlobal.Create;
begin
 inherited;
...(ostatni kod)

end;

takze se nemusi pouzivat CreateForm (a kompilator to zbastil?). Chces-li mit
ten objekt globalni, dej ho do unitu treba GlobalUnit a tento nazev pak
uvedes v seznamu USES v kazdem unitu, odkud to ma byt videt. Jo a v tom
GlobalUnit musis mit deklarovanou i naplnenou promennou, ve ktere je ta
instance.

RNDr. Petr Brant [brant@dcomm.cz]
D&COMM s.r.o.
Korunovační 6
Praha 7
tel. +420724007234

 Subject: Objekt viditelny v cele aplikaci


mam vytvoreny objekt TGlobal, odvozeny od TObject,
 potrebuji aby byl videt v cele aplikaci a nebyl navazan na zadny
formular,
 jedine k cemu jsem dospel
 je dopsat do DPR toto

   Application.CreateForm(TGlobal, Global);

 Ale nezda se mi to CreateForm, kdyz to form neni.

Odpovedá: Richard Siegl

29. 10. 2002 10:11

A este nezabudnut ak vznikne ciklicky odkaz uses Unit1
presunut referenciu uses Unit1 do casti Implementation.

Rickie

----- Original Message -----
From: "Ondřej Kaláb" <ondrej.kalab@webhouse.cz>
To: <delphi-l@clexpert.cz>
Sent: Tuesday, October 29, 2002 9:47 AM
Subject: RE: Objekt viditelny v cele aplikaci


Staci si tenot objekt dat do unity hlavniho formulare, na kterou si potom
date odkazy z kazde další unit.
Napr. Hlavni form je Form1, hlavni unit Unit1, zam si objekt vytvorite a pak
si v kazde další date uses unit1. No a je to...


Odpovedá: Radim Kunz

29. 10. 2002 10:31


----- Original Message -----
From: "Ales Kerner" <kerner@metalcom.cz>
To: <delphi-l@clexpert.cz>
Sent: Tuesday, October 29, 2002 9:42 AM
Subject: Objekt viditelny v cele aplikaci


> Zdravim,
>
> mam nasledujici problem, mam vytvoreny objekt TGlobal, odvozeny od
TObject,
> potrebuji aby byl videt v cele aplikaci a nebyl navazan na zadny formular,
> jedine k cemu jsem dospel
> je dopsat do DPR toto
>
> Application.CreateForm(TGlobal, Global);
>
> Ale nezda se mi to CreateForm, kdyz to form neni.
>
> Dik za radu
>
> Ales
>

Nemusis to davat do DPR, staci do unity, kde mas ten TGlobal, napsat

initialization

Global := TGlobal.Create

finalization
Global.Free;

Odpovedá: Ondřej Kaláb

29. 10. 2002 11:21

Jo, jasne, ale to je standardne probirana věc v kazde prorucce Delphi
pro zacatecniky.... Myslim.

-----Original Message-----
From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz] On
Behalf Of Richard Siegl
Sent: Tuesday, October 29, 2002 10:14 AM
To: delphi-l@clexpert.cz
Subject: Re: Objekt viditelny v cele aplikaci


A este nezabudnut ak vznikne ciklicky odkaz uses Unit1
presunut referenciu uses Unit1 do casti Implementation.

Rickie

----- Original Message -----
From: "Ondřej Kaláb" <ondrej.kalab@webhouse.cz>
To: <delphi-l@clexpert.cz>
Sent: Tuesday, October 29, 2002 9:47 AM
Subject: RE: Objekt viditelny v cele aplikaci


Staci si tenot objekt dat do unity hlavniho formulare, na kterou si
potom date odkazy z kazde další unit. Napr. Hlavni form je Form1, hlavni
unit Unit1, zam si objekt vytvorite a pak si v kazde další date uses
unit1. No a je to...



---
Příchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.408 / Virová báze: 230 - datum vydání: 24.10.2002
 

---
Odchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.408 / Virová báze: 230 - datum vydání: 24.10.2002

Odpovedá: Jan Sebelík

29. 10. 2002 13:54

> Odesílatel: OndĹ?ej KalĂĄb <ondrej.kalab@webhouse.cz>
> Staci si tenot objekt dat do unity hlavniho formulare, na kterou si potom
date odkazy z kazde dalĹĄĂ­ unit.
> Napr. Hlavni form je Form1, hlavni unit Unit1, zam si objekt vytvorite a pak
si v kazde dalĹĄĂ­ date uses unit1. No a je to...

No, nevim, ale prave toto je podle me spatne.
Daleko lepsi je umisteni v GlobalUnit, ktere navrhuje treba Petr Brant.

Ja to chapu takto:
jeslize je v UnitX uses UnitY, znamena to, ze UnitY "slouzi, je sluhou" pro
UnitX.

Navrhovane reseni tvrdi, ze unit hlavniho formulare (Unit1) "slouzi, je sluhou"
pro vsechny ostatni unity.
Nesmysl.
Krizove reference v unitach mohou vest k peknemu zmatku, je treba je (pokud
vubec) delat velmi opatrne.

Predstavte si toto:

Project1 uses UnitMain1, ...
UnitMain1 uses Unit12, Unit13, ..., UnitX

UnitX uses UnitMain1;

Project2 uses UnitMain2, ...
UnitMain2 uses Unit22, Unit23, ..., UnitX

No a v Projektu 2 mam prikompilovan cely Projekt 1.

Pokud si myslite, ze to je "umela" konstukce, nemyslete si to.
Uz jsem to opravdu videl.

Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes.cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 493 792 931 (mobil 776 347735)
=========================================